import requests
import pandas as pd
import time
import random


# 1、获取网页源代码


def get_one_html(page):
    """
    获取网页源代码
    :return:网页源代码 
    """
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    url = 'https://s.askci.com/stock/a/0-0?reportTime=2025-03-31&pageNum={}'.format(page)
    # 发送请求,接收响应
    r = requests.get(url,headers=headers).text
    return r


# 2、提取网页源代码数据
def parse_one_page(html):
    """
    提取网页源代码里数据
    :param html:网页源代码 
    :return: 表格数据
    """
    tb = pd.read_html(html,header=0)[3]
    return tb

# 3、保存数据
def save_page(data):
    """
    
    :param data: 表格存放的列表
    :return: 
    """
    df = pd.concat(data)
    df.to_csv('./上市公司完整信息.csv',index=False)



def main():
    data = []
    for i in range(1,273):
        html = get_one_html(i)
        tb = parse_one_page(html)
        data.append(tb)
        print('第{}页合并完毕'.format(i))
        # 随机睡眠时间：30 到 120 秒之间（包含小数，比如 45.7 秒）
        sleep_time = random.uniform(30, 120)
        print(f"程序将睡眠 {sleep_time:.2f} 秒...")
        time.sleep(sleep_time)
        print("睡眠结束！")
        

    save_page(data)
    print("数据保存成功")


if __name__ == '__main__':
    main()